home *** CD-ROM | disk | FTP | other *** search
/ Magic Disk 64 / Magic_Disk_64_89-11_1989_-_de_Side_B.d64 / joysprite.demo (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  11KB  |  345 lines

  1. 10 goto460
  2. 15 :
  3. 20 rem **** zeilen loeschen ****
  4. 25 :
  5. 30 fori=4to24:poke781,i:sys59903:next:return
  6. 35 :
  7. 40 rem **** tastaturabfrage ****
  8. 45 :
  9. 50 geta$:ifa$<>"w"then50
  10. 55 return
  11. 60 :
  12. 65 rem **** cursor setzen ****
  13. 70 :
  14. 75 poke783,0:poke781,z:poke782,s:sys65520:return
  15. 80 :
  16. 85 rem **** sprites an/aus ****
  17. 90 :
  18. 95 poke53269,peek(53269)or1:return:rem sprite 0 an
  19. 100 :
  20. 105 poke53269,peek(53269)and254:return:rem sprite 0 aus
  21. 110 :
  22. 115 poke53269,peek(53269)or2:return:rem sprite 1 an
  23. 120 :
  24. 125 poke53269,peek(53269)and253:return:rem sprite 1 aus
  25. 130 :
  26. 135 rem **** bildschirm an/aus ****
  27. 140 :
  28. 145 poke53265,peek(53265)and239:return:rem aus
  29. 150 :
  30. 155 poke53265,peek(53265)or16:return:rem an
  31. 160 :
  32. 165 rem **** peek(2) = 0 ? ****
  33. 170 :
  34. 175 ifpeek(2)=0thenreturn
  35. 180 poke2,0:fori=0to50:next:goto175
  36. 185 :
  37. 190 rem **** datas einlesen ****
  38. 195 :
  39. 200 fori=1to8:readm$(i):next:goto250
  40. 205 data"[196]atei laden     "
  41. 210 data"[196]atei speichern "
  42. 215 data"[196]atei umbenennen"
  43. 220 data"[196]atei kopieren  "
  44. 225 data"[196]atei loeschen  "
  45. 230 data"[196]irectory       "
  46. 235 data"[196]isk-[194]efehl     "
  47. 240 data"[209]uit            "
  48. 245 :
  49. 250 fori=1to3:readf$(i):next:return
  50. 255 data"[200]intergrund"
  51. 260 data"[210]ahmen     "
  52. 265 data"[212]ext       "
  53. 270 :
  54. 275 rem **** farbmenue ****
  55. 280 :
  56. 285 print"        [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
  57. 290 print"        [221]    [198]arben waehlen    [221]"
  58. 295 print"        [171][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][179]"
  59. 300 print"        [221][176][192][192][192][192][192][192][192][192][192][192][192][174]         [221]"
  60. 305 print"        [221][221]"f$(1)"[221] [176][192][192][192][192][192][174] [221]"
  61. 310 print"        [221][173][192][192][192][192][192][192][192][192][192][192][192][189] [221]  <  [221] [221]"
  62. 315 print"        [221][176][192][192][192][192][192][192][192][192][192][192][192][174] [173][192][192][192][192][192][189] [221]"
  63. 320 print"        [221][221]"f$(2)"[221] [176][192][192][192][192][192][174] [221]"
  64. 325 print"        [221][173][192][192][192][192][192][192][192][192][192][192][192][189] [221]  >  [221] [221]"
  65. 330 print"        [221][176][192][192][192][192][192][192][192][192][192][192][192][174] [173][192][192][192][192][192][189] [221]"
  66. 335 print"        [221][221]"f$(3)"[221]         [221]"
  67. 340 print"        [221][173][192][192][192][192][192][192][192][192][192][192][192][189]         [221]"
  68. 345 print"        [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]":return
  69. 350 :
  70. 355 rem **** soundchip loeschen ****
  71. 360 :
  72. 365 fori=0to24:poke54272+i,0:next:return
  73. 370 rem **** sound ****
  74. 375 :
  75. 380 gosub365
  76. 385 poke54277,5:poke54278,7:poke54274,2048and255:poke54275,89:poke54272,136
  77. 390 poke54273,19:poke54294,50:poke54295,0:poke54296,15:return
  78. 395 :
  79. 400 poke54276,32or1:forb=1to35:next:poke54276,32and254:return
  80. 405 :
  81. 410 rem **** explosion
  82. 415 :
  83. 420 gosub365
  84. 425 poke54272,0:poke54273,6:poke54277,45:poke54294,100:poke54295,243
  85. 430 poke54296,63:poke54276,0:poke54276,129
  86. 435 fori=1to90:poke54272,i:next
  87. 440 fori=1to1000:next:return
  88. 445 :
  89. 450 rem **** titel ****
  90. 455 :
  91. 460 print"[147]":poke53280,0:poke53281,0:gosub145
  92. 465 poke657,128:poke56,140
  93. 470 poke56576,(peek(56576)and252)or1
  94. 475 poke53272,(peek(53272)and15)or48
  95. 480 poke648,140
  96. 485 print"[147]"chr$(142)" [158]das powertool fuer basic-programmierer"
  97. 490 print"             [153][169]  [146][169][165][153][169]  [146][169][165][153][169][146][169][169][146][169][165]"
  98. 495 print"                [146] [165]   [146] [165] [146]  [146] [165]"
  99. 500 print"              [164] [146] [165] [146]  [146] [165] [153][169] [146] [165]"
  100. 505 print"             [153][169][146][169] [146] [165] [146]  [146] [165]   [146] [165]"
  101. 510 print"              [153][169] [146] [165] [153][169] [146] [165][153][169]  [146] [165]"
  102. 515 print"                [146][206]    [146][206]    [146][206]"
  103. 520 print"       [154][169]  [146][169][165][154][169]  [146][169][165][154][169]  [146][169][165][154][169][146][169][165][154][169]  [146][169] [169]  [146][169][165]"
  104. 525 print"          [146][206]    [146] [165]   [146] [165] [146] [165]   [146]     [146][206]"
  105. 530 print"        [154][169] [146][169][165] [154][169] [146] [165] [154][169] [146] [165] [146] [165]  [146] [165]  [154][169][146][169][165]"
  106. 535 print"          [146] [165]   [146][206]    [146][206]  [146] [165]  [146] [165]   [146][206]"
  107. 540 print"       [154][169]  [146] [165] [146] [165]    [154][169][146][169][165] [146] [165]  [146] [165]  [154][169] [146][169][165]"
  108. 545 print"          [146][206]  [146][206]    [146][206] [146][206]  [146][206]   [146][206]     [146][206]"
  109. 550 print"               [151]written by"
  110. 555 print"            [152]carsten manshusen"
  111. 560 print"     [155](c) cocoa beach artworks 1989":gosub155
  112. 565 ifl=1thengoto585
  113. 570 poke147,0:sys57812"joysprite",8,1:sys62631
  114. 575 sys57812"demo.sprites",8,1:sys62631
  115. 580 gosub200:poke53276,0:poke53287,1:poke36857,195
  116. 585 poke36856,192:print"               <d> = demo";
  117. 590 geta$:ifa$<>"d"then590
  118. 595 gosub145
  119. 600 :
  120. 605 rem **** anleitung ****
  121. 610 :
  122. 615 print"[147]"chr$(14)"            [151][202][207][217][211][208][210][201][212][197] - [196][197][205][207]"
  123. 620 print"            [152][202][207][217][211][208][210][201][212][197] - [196][197][205][207]"
  124. 625 print"            [155][202][207][217][211][208][210][201][212][197] - [196][197][205][207]"
  125. 630 print"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]";
  126. 635 print" [154][198]uer die meisten [208]rogramme ist die"
  127. 640 print" [211]pritesteuerung in [194]asic viel zu lang-"
  128. 645 print" sam und in vernuenftiger [199]eschwindig-"
  129. 650 print" keit nur in [193]ssembler zu realisieren."
  130. 655 print" [196]as [212]ool [202][207][217][211][208][210][201][212][197] hebt dieses [205]anko"
  131. 660 print" auf und ermoeglicht es endlich auch"
  132. 665 print" dem [194]asic-[208]rogrammierer, auf dem [195]64"
  133. 670 print" professionelle [208]rogramme zu schreiben."
  134. 675 print" [202][207][217][211][208][210][201][212][197] ist eine kleine [193]ssembler-"
  135. 680 print" routine, die im [201]nterrupt ueber einen"
  136. 685 print" der beiden [202]oystickports [211]prite 0 in"
  137. 690 print" beliebiger [199]eschwindigkeit ueber den"
  138. 695 print" [194]ildschirm bewegt. [196]as [194]asic-[208]rogramm"
  139. 700 print" laeuft dabei ganz normal weiter."
  140. 705 print" [202][207][217][211][208][210][201][212][197] wird mit ',8,1' nachgeladen"
  141. 710 print" und belegt den [211]peicher ab $c000."
  142. 715 print"              <[215]> = [215][197][201][212][197][210]";
  143. 720 gosub155:gosub50:gosub30
  144. 725 print" [154][202][207][217][211][208][210][201][212][197] wird aufgerufen durch"
  145. 730 print" [211][217][211] 49152, [202]oystickport (1-2),"
  146. 735 print"            [212]empo (1-6),"
  147. 740 print"            [199]renze/oben (0-255),"
  148. 745 print"            [199]renze/unten (0-255),"
  149. 750 print"            [199]renze/links (0-344),"
  150. 755 print"            [199]renze/rechts (0-344)."
  151. 760 print" [196]ie alten [211]prite-[208]okes sind dabei nach"
  152. 765 print" wie vor zur [198]arbgebung sowie zum [193]n-"
  153. 770 print" und [193]bschalten etc. noetig, [202][207][217][211][208][210][201][212][197]"
  154. 775 print" uebernimmt lediglich die [211]teuerung von"
  155. 780 print" [211]prite 0."
  156. 785 print" [196]ie [199]renzparameter dienen dazu, den"
  157. 790 print" [194]ildschirmbereich, ueber den [211]prite 0"
  158. 795 print" bewegt werden kann, beliebig zu be-"
  159. 800 print" stimmen."
  160. 805 print"              <[215]> = [215][197][201][212][197][210]";
  161. 810 gosub50:gosub30
  162. 815 print" [154][193]bgeschaltet wird [202][207][217][211][208][210][201][212][197] mit"
  163. 820 print" [211][217][211] 49290."
  164. 825 print" [196]ie alte [201][210][209]-[210]outine wird dann wieder"
  165. 830 print" initialisiert."
  166. 835 print" [215]urde der [198]euerknopf gedrueckt, wird"
  167. 840 print" der [215]ert 1 in die unbenutzte [211]peicher-"
  168. 845 print" stelle $02 geschrieben. [196]iese muss"
  169. 850 print" nach der [193]uswertung im [194]asic-[208]rogramm"
  170. 855 print" ('[201][198] [208][197][197][203](2)=1 [212][200][197][206] [199][207][212][207]') 'per [200]and'"
  171. 860 print" mit '[208][207][203][197] 2,0' geloescht werden."
  172. 865 print" [202][207][217][211][208][210][201][212][197] eroeffnet dem [194]asic-[208]ro-"
  173. 870 print" grammierer eine [198]uelle von neuen [205]oeg-"
  174. 875 print" lichkeiten, seine [208]rogramme zu gestal-"
  175. 880 print" ten ([193]uch diese [196]emo wurde in reinem"
  176. 885 print" [194]asic geschrieben!):"
  177. 890 print"              <[215]> = [215][197][201][212][197][210]";
  178. 895 gosub50:gosub30
  179. 900 :
  180. 905 rem **** demo 1: menueauswahl ****
  181. 910 :
  182. 915 print"    [154]- [208]rofessionelle [205]enue-[193]uswahl -"
  183. 920 print"          [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
  184. 925 print"          [221]                  [221][153][146][161]"
  185. 930 fori=1to8:print"          [221] "m$(i)" [221][153][146][161]":next
  186. 935 print"          [221]                  [221][153][146][161]"
  187. 940 print"          [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][153][146][161]"
  188. 945 print"           [162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"
  189. 950 print"   [211]teuerung ueber [202]oystick in [208]ort 2"
  190. 955 print"              <[215]> = [215][197][201][212][197][210]";
  191. 960 :
  192. 965 sys49152,2,1,124,184,128,240
  193. 970 poke53248,170:poke53249,125:gosub95
  194. 975 aa=0:s=12:gosub175
  195. 980 geta$:ifa$="w"then1110
  196. 985 ifpeek(2)=1then1020
  197. 990 y=peek(53249)
  198. 995 a=int((y-122)/8+1)
  199. 1000 ifa=aathen980
  200. 1005 ifaa<>othenz=aa+8:gosub75:print""m$(aa)
  201. 1010 z=a+8:gosub75:print"[153]"m$(a):aa=a:goto980
  202. 1015 :
  203. 1020 gosub75:print""m$(a):gosub105:sys49290
  204. 1025 print"    [154][176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
  205. 1030 print"    [221]                    [221][146][161]"
  206. 1035 print"    [154][221] [193]usgewaehlt wurde: [221][146][161]"
  207. 1040 print"    [154][221] ------------------ [221][146][161]"
  208. 1045 print"    [154][221] "m$(a)"   [221][146][161]"
  209. 1050 print"    [154][221]                    [221][146][161]"
  210. 1055 print"    [154][221] [158][205][197][206][213][197][154]              [221][146][161]"
  211. 1060 print"    [154][221]                    [221][146][161]"
  212. 1065 print"    [154][173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][146][161]"
  213. 1070 print"     [162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"
  214. 1075 poke53248,100:poke53249,166
  215. 1080 sys49152,2,1,163,167,78,107
  216. 1085 gosub95:gosub175
  217. 1090 geta$:ifa$="w"then1110
  218. 1095 ifpeek(2)=1thengosub105:sys49290:goto915
  219. 1100 goto1090
  220. 1105 :
  221. 1110 gosub105:sys49290:gosub30
  222. 1115 :
  223. 1120 rem **** demo 2: farbmenue ****
  224. 1125 :
  225. 1130 print"   [154]- [203]omfortable [208]rogramm-[194]edienung -[155]":gosub285
  226. 1135 print"   [211]teuerung ueber [202]oystick in [208]ort 2"
  227. 1140 print"              <[215]> = [215][197][201][212][197][210][155]";
  228. 1145 sys49152,2,2,126,202,83,266
  229. 1150 poke36856,193:poke53248,170:poke53249,143:gosub95:a=0:aa=0:af=0
  230. 1155 :
  231. 1160 geta$:ifa$="w"then1325
  232. 1165 ifpeek(2)=0then1160
  233. 1170 poke2,0:x=peek(53248):y=peek(53249)
  234. 1175 ifx<93then1160
  235. 1180 ifx>184then1205
  236. 1185 ify>133andy<148thena=1:goto1230
  237. 1190 ify>157andy<172thena=2:goto1230
  238. 1195 ify>181andy<196thena=3:goto1230
  239. 1200 goto1160
  240. 1205 ifx<205orx>249ora=0then1160
  241. 1210 ify>141andy<156thenaf=1:goto1250
  242. 1215 ify>165andy<180thenaf=2:goto1250
  243. 1220 goto1160
  244. 1225 :
  245. 1230 ifa=aathen1160
  246. 1235 ifaa<>0thengosub75:print""f$(aa)
  247. 1240 s=10:z=8+a*3:gosub75:printf$(a):aa=a:gosub175:goto1160
  248. 1245 :
  249. 1250 onagoto1255,1260,1265
  250. 1255 f=peek(53281):goto1270
  251. 1260 f=peek(53280):goto1270
  252. 1265 f=peek(646)+240
  253. 1270 ifaf=2then1285
  254. 1275 f=f-1:iff=239thenf=255
  255. 1280 goto1290
  256. 1285 f=f+1:iff=256thenf=240
  257. 1290 onagoto1295,1300,1305
  258. 1295 poke53281,f:gosub175:goto1160
  259. 1300 poke53280,f:gosub175:goto1160
  260. 1305 poke646,f-240:print"";:gosub285:gosub75:printf$(a):gosub175:goto1160
  261. 1310 :
  262. 1315 rem **** demo 3: spiel ****
  263. 1320 :
  264. 1325 gosub105:sys49290:gosub30:poke53280,0:poke53281,0
  265. 1330 print"      [154]- [211]chnelle [211]piel-[211]teuerung -"
  266. 1335 print"   [152][176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174][176][192][192][192][192][192][192][192][192][192][192][174]"
  267. 1340 print"   [221][155]                    [152][221][221][158][176][192][192][192][192][192][192][192][192][174][152][221][151][146][161]"
  268. 1345 print"   [152][221][155]     [205]aeusejagd     [152][221][221][158][221] [205]aeuse-[221][152][221][151][146][161]"
  269. 1350 print"   [152][221][155]    ------------    [152][221][221][158][221]  jagd  [221][152][221][151][146][161]"
  270. 1355 print"   [152][221][155] [194]ei diesem [196]emo-   [152][221][221][158][173][192][192][192][192][192][192][192][192][189][152][221][151][146][161]"
  271. 1360 print"   [152][221][155] [211]piel muss man     [152][221][171][192][192][192][192][192][192][192][192][192][192][179][151][146][161]"
  272. 1365 print"   [152][221][155] mit seinem [206]etz so [152][221][221][154]          [152][221][151][146][161]"
  273. 1370 print"   [152][221][155] viele [211][195][200][215][193][210][218][197]     [152][221][221][154] [205]aeuse:  [152][221][151][146][161]"
  274. 1375 print"   [152][221][155] [205]aeuse wie moeg-   [152][221][221][154] 0        [152][221][151][146][161]"
  275. 1380 print"   [152][221][155] lich fangen, die   [152][221][221][154]          [152][221][151][146][161]"
  276. 1385 print"   [152][221][155] [210][207][212][197][206] duerfen      [152][221][171][192][192][192][192][192][192][192][192][192][192][179][151][146][161]"
  277. 1390 print"   [152][221][155] nicht beruehrt     [152][221][221][146][211]teuerung [152][221][151][146][161]"
  278. 1395 print"   [152][221][155] werden!            [152][221][221][146]ueber     [152][221][151][146][161]"
  279. 1400 print"   [152][221][155]          [158][211][208][201][197][204][197][206][155]   [152][221][221][146][202]oystick  [152][221][151][146][161]"
  280. 1405 print"   [152][221][155]                    [152][221][221][146][208]ort 2    [152][221][151][146][161]"
  281. 1410 print"   [152][173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][173][192][192][192][192][192][192][192][192][192][192][189][151][146][161]"
  282. 1415 print"   [188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"
  283. 1420 print"              <[215]> = [215][197][201][212][197][210]";
  284. 1425 poke36856,192:poke53248,166:poke53249,208
  285. 1430 sys49152,2,1,204,208,139,188
  286. 1435 gosub95:gosub175
  287. 1440 geta$:ifa$="w"then1620
  288. 1445 ifpeek(2)<>1then1440
  289. 1450 gosub105:sys49290
  290. 1455 print"   [152][176][192][192][178][192][192][178][192][192][178][192][192][178][192][192][178][192][192][178][192][192][174]"
  291. 1460 print"   [221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221]"
  292. 1465 print"   [221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221]"
  293. 1470 fori=1to4
  294. 1475 print"   [171][192][192][219][192][192][219][192][192][219][192][192][219][192][192][219][192][192][219][192][192][179]"
  295. 1480 print"   [221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221]"
  296. 1485 print"   [221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221][155]  [152][221]":next
  297. 1490 print"   [173][192][192][177][192][192][177][192][192][177][192][192][177][192][192][177][192][192][177][192][192][189]"
  298. 1495 ift=0thent=1
  299. 1500 gosub380:m=0:s=27:z=14:poke36856,194
  300. 1505 poke53278,0:poke53248,56:poke53249,202
  301. 1510 poke53288,0:poke53250,125:poke53251,152
  302. 1515 gosub95:gosub115:fori=0to900:next
  303. 1520 sys49152,2,3,103,205,52,202
  304. 1525 :
  305. 1530 i=0:ii=int(rnd(0)*7)+4
  306. 1535 geta$:ifa$="w"then1615
  307. 1540 ifpeek(53278)and3<>0then1575
  308. 1545 i=i+1:ifi<iithen1540
  309. 1550 gosub125:x=53+int(rnd(0)*7)*24:y=104+int(rnd(0)*5)*24
  310. 1555 poke53250,x:poke53251,y
  311. 1560 f=int(rnd(0)*2):iff=1thenf=2
  312. 1565 poke53288,f:gosub115:goto1530
  313. 1570 :
  314. 1575 sys49290:ifpeek(53288)=242then1600
  315. 1580 gosub400:m=m+1:gosub75:print""mid$(str$(m),2,len(str$(m)))
  316. 1585 gosub105:gosub125
  317. 1590 ifm=99999999then1605
  318. 1595 goto1505
  319. 1600 poke53280,2:gosub420:poke53280,0
  320. 1605 gosub105:gosub125:goto1330
  321. 1610 :
  322. 1615 gosub125
  323. 1620 gosub105:sys49290
  324. 1625 ift=1thent=0:gosub365
  325. 1630 gosub30
  326. 1635 print" [154][196]as war natuerlich nur eine kleine"
  327. 1640 print" [193]uswahl der neuen [205]oeglichkeiten mit"
  328. 1645 print" [202][207][217][211][208][210][201][212][197]."
  329. 1650 print" [215]as wirklich alles in dieser [210]outine"
  330. 1655 print" steckt, wird wahrscheinlich jeder"
  331. 1660 print" selbst entdecken, wenn er [202][207][217][211][208][210][201][212][197]"
  332. 1665 print" in seinen [194]asic-[208]rogrammen verwendet."
  333. 1670 print" [214][201][197][204] [211][208][193][211][211] [196][193][194][197][201] !"
  334. 1675 print"          [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
  335. 1680 print"          [221][154][195]arsten [205]anshusen[221]"
  336. 1685 print"          [221][154][215]eserstr. 54     [221]"
  337. 1690 print"          [221][154]2850 [194]remerhaven [221]"
  338. 1695 print"          [221][154][212]el.: 0471/71547 [221]"
  339. 1700 print"          [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]"
  340. 1705 print"     <[206]> = [206][207][195][200] [197][201][206][205][193][204]  <[197]> = [197][206][196][197]";
  341. 1710 geta$:ifa$=""then1710
  342. 1715 ifa$="n"thenl=1:gosub145:goto485
  343. 1720 ifa$<>"e"then1710
  344. 1725 gosub145:sys64738
  345.